## API Report File for "@backstage/plugin-sentry"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { DiscoveryApi } from '@backstage/core-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { IdentityApi } from '@backstage/core-plugin-api';
import { InfoCardVariants } from '@backstage/core-components';
import { Options } from '@material-table/core';
import { default as React_2 } from 'react';
import { RouteRef } from '@backstage/core-plugin-api';

// @public (undocumented)
export const EntitySentryCard: (props: SentryPageProps) => React_2.JSX.Element;

// @public (undocumented)
export const EntitySentryContent: (
  props: SentryPageProps,
) => React_2.JSX.Element;

// @public (undocumented)
export type EventPoint = number[];

// @public
export const isSentryAvailable: (entity: Entity) => boolean;

// @public (undocumented)
export class MockSentryApi implements SentryApi {
  // (undocumented)
  fetchIssues(): Promise<SentryIssue[]>;
}

// @public (undocumented)
export class ProductionSentryApi implements SentryApi {
  constructor(
    discoveryApi: DiscoveryApi,
    organization: string,
    identityApi?: IdentityApi | undefined,
  );
  // (undocumented)
  fetchIssues(
    entity: Entity,
    options: {
      statsFor: string;
      query?: string;
    },
  ): Promise<SentryIssue[]>;
}

// @public (undocumented)
export const Router: (props: { entity: Entity }) => React_2.JSX.Element;

// @public (undocumented)
export interface SentryApi {
  // (undocumented)
  fetchIssues(
    entity: Entity,
    options: {
      statsFor: string;
      query?: string;
    },
  ): Promise<SentryIssue[]>;
}

// @public (undocumented)
export type SentryApiError = {
  detail: string;
};

// @public (undocumented)
export const sentryApiRef: ApiRef<SentryApi>;

// @public (undocumented)
export type SentryIssue = {
  platform: SentryPlatform;
  lastSeen: string;
  numComments: number;
  userCount: number;
  stats: {
    '24h'?: EventPoint[];
    '14d'?: EventPoint[];
  };
  culprit: string;
  title: string;
  id: string;
  assignedTo: any;
  logger: any;
  type: string;
  annotations: any[];
  metadata: SentryIssueMetadata;
  status: string;
  subscriptionDetails: any;
  isPublic: boolean;
  hasSeen: boolean;
  shortId: string;
  shareId: string | null;
  firstSeen: string;
  count: string;
  permalink: string;
  level: string;
  isSubscribed: boolean;
  isBookmarked: boolean;
  project: SentryProject;
  statusDetails: any;
};

// @public (undocumented)
export type SentryIssueMetadata = {
  function?: string;
  type?: string;
  value?: string;
  filename?: string;
};

// @public (undocumented)
export const SentryIssuesWidget: (props: {
  entity: Entity;
  statsFor: '24h' | '14d' | '';
  tableOptions: Options<never>;
  variant?: InfoCardVariants;
  query?: string;
}) => React_2.JSX.Element;

// @public (undocumented)
export type SentryPageProps = {
  statsFor?: '24h' | '14d' | '';
  tableOptions?: Options<never>;
};

// @public (undocumented)
export type SentryPlatform = 'javascript' | 'javascript-react' | string;

// @public (undocumented)
const sentryPlugin: BackstagePlugin<
  {
    root: RouteRef<undefined>;
  },
  {}
>;
export { sentryPlugin as plugin };
export { sentryPlugin };

// @public (undocumented)
export type SentryProject = {
  platform: SentryPlatform;
  slug: string;
  id: string;
  name: string;
};
```
